type Absolute<T extends string | number | BigInt> = T extends string
  ? T extends `-${infer R}`
    ? R
    : T
  : T extends number
  ? Absolute<`${T}`>
  : T extends BigInt
  ? Absolute<`${bigint & T}`>
  : T;

type AbsoluteBigInt<T extends BigInt> = `${bigint & T}`;

type AB1 = AbsoluteBigInt<-1_000_000n>;
